package model.AI;

import control.networking.RiskAIClient;

/**
 * This is an interface that contains the standard behavioral methods to be used
 * by the AI combatants. Each implementation of this interface can use these
 * methods in vastly different ways, giving personality to the AI bots.
 * 
 * @author David's David Shefchik
 * 
 * 
 * 
 */
public interface Cyborg extends Runnable {

	/**
	 * With this method the AI decides if it is possible to trade in cards, and
	 * if so, then whether it is a good idea to do so. The simple AI player
	 * simply trades whenever he has enough cards to do so, however the Expert
	 * AI may wait for a more opportune moment.
	 */
	public void cardPhase();

	/**
	 * This is the AI phase where the Cyborg decides where to place his troops
	 * among countries he owns. The simple AI puts his troops where he can take
	 * a country from another player, but the Expert might try to place in order
	 * to kill or block a player, or else take a continent or just defend.
	 */
	public void placePhase();

	/**
	 * This is the AI phase where the Cyborg attacks another territory. The
	 * simple Cyborg will attack any territory that he has a good chance or
	 * taking with his current number of troops. However, the expert AI might
	 * attack to try to kill a player, take a continent, keep a player from
	 * getting a continent bonus or just take an easy territory to get a card.
	 */
	public void attackPhase();

	/**
	 * This is the phase of the Cyborg where he decides where to move his
	 * troops. If it's the simple AI, he will move his troops to his most
	 * populous territory. If it's the expert AI, he may move to a more
	 * strategic position for defense, or else to a more advantageous location
	 * for his next attack phase.
	 */
	public void movePhase();

	/**
	 * Here is where the AI sends a chat message to the chat server based on
	 * what happens in the game. If he does poorly in a turn, he'll be angry or
	 * embarrassed. If he does well he will gloat about his accomplishments. If
	 * he's being attacked, he might heckle.
	 */
	public void talkTrash();

	

	

}
